#pragma once
#ifndef _KLAS_TEXTURE_HPP_
#define _KLAS_TEXTURE_HPP_

#include "../Library.hpp"
#include "../Platform.hpp"

#include <string>
using std::string;

namespace klas
{
  namespace graphics
  {
    //! A texture that can be rendered with a graphics library.
    class KLAS_API Texture: public virtual library::Base
    {
    public:
      
      //! Dtor.
      virtual ~Texture() {};

      //! Load a texture from a path.
      virtual bool load(string path) = 0;

      //! Delete the texture.
      virtual void kill() = 0;

      //! Make sure that the texture is valid.
      virtual bool isValid() const = 0;

    };
  }
}

#endif